package review.single_;

public class SingleTon02 {
    public static void main(String[] args) {
//        System.out.println(Cat.n1);
        Cat instance = Cat.getInstance();
        System.out.println(instance);

        Cat instance2 = Cat.getInstance();
        System.out.println(instance2);
    }
}

class Cat {
    private String name;
    public static int n1 = 999;
    private static Cat cat; // 默认是null

    //懒汉式
    //1.将构造器私有化
    //2.定义一个static静态属性
    //3.提供一个public的static方法，可以返回一个Cat对象
    //4.懒汉式，只有当用户使用getInstance时，才返回cat对象，后面再次调用时，返回第一次创建的cat对象s
    private Cat(String name) {
        System.out.println("构造器调用...");
        this.name = name;
    }

    public static Cat getInstance() {
        if(cat == null){ // 如果没有创建cat对象
            cat = new Cat("小花");
        }
        return cat;
    }
}